package com.xhga.transaction.common.redis;

import java.util.List;

/**
 * Created by xhga on 2019/4/19.
 */
public interface RedisApi {

    boolean isConnection();

    void add(String key, Object value);

    void delete(String key);

    boolean setNx(String key, String value);

    String get(String key);

    /**
     * 将 key 所储存的值增加指定的增量值。
     * @param key
     * @param number
     */
    void increase(String key, int number);

    /**
     * 将 key 所储存的值减去指定的减量值。
     * @param key
     * @param number
     */
    int decrement(String key, int number);

    void addList(String key, String value);

    void addList(String key, List<String> list);

    void setList(String key, int index, String value);

    List<String> getList(String key);

    List<String> getList(String prefix, String key, String name);

    String pop(String key);

    /**
     * 加锁: 添加key,value
     * @param key
     * @param value
     */
    void lock(String key, String value);

    /**
     * 解锁: 删除key
     * @param key
     */
    void unLock(String key);
}
